package advanced.io;

import java.io.*;

/**
 * 基本数据类型的输入输出流(属于字节流)
 * 序列化的使用会用到 这个底层操作 很重要 理解!!!
 * <p>
 * <p>
 * DataInputStream
 * DataOutputStream
 */
public class L_DataInputStream {
    public static void main(String[] args) {


    }

    public static void dataOutput() {
        //        将字节数组中写出, 可以改为文件流
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(baos));
        //写出
        try {
            dos.writeInt(32);
            dos.writeUTF("编码辛酸泪");
            dos.writeBoolean(false);
            dos.writeChar('a');
            dos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void dataInput(byte[] datas) {
        //从字节数组中读取数据
        DataInputStream dis = new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(datas)));
        //顺寻与写出一致
        try {
            int age = dis.readInt();
            String msg = dis.readUTF();
            boolean flag = dis.readBoolean();
            char ch = dis.readChar();
            System.out.println(msg);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
